查看原文
其他

简单的TIM防撤回逆向

OK繃 看雪学院 2019-05-25
前言


加入看雪那么久了,都是在看各位大牛的逆向、病毒分析等,从来没有发过言,这个简单点的小例子能成为我在看雪的第一步。


现在的聊天软件都自带了撤回消息的功能,每次我们没有及时查看信息,被人撤回是,是不是心里难受痒痒着了?
这个逆向撤回功能是之前学习的一个案例,现在分享一下。



TIM消息撤回简易结构


发送的消息会在服务端和客户端都有保存。服务端我们做不了什么,但是客户端我们可以不让他删除。


逆向,猜的成分占有很大的一部分比例。


TIM程序有很多的模块,我们先要做的就是确定下来撤回消息的功能写在了哪个模块内。


我们用英文翻译软件来搜一下撤回的英文,撤回的英文单词有:revoke,cancel,recall


 

我们可以用notepad++的文件搜索功能来看一下



可以看到IM.DLL内有与此相关的函数名




(PS:当然没有那么容易确认下来是这个模块,这就需要自己一个个去区分了,不在这里说那么多)



逆向过程分析

知道撤回消息的功能是在哪个模块了,现在拖入X32DBG进行逆向分析。


  • 附加运行TIM



  • 搜索im.dll模块



  • 在模块内搜索字符串revoke相关的函数



  • 在所有命令上设置断点



  • 现在给TIM发送消息并且撤回,看看会触发哪个断点。
    发现断在了此处



  • 单步运行看看运行到哪后TIM消息框内的消息被撤回了
    最后发现单步到这个函数后起效了
    直接nop掉,或者你喜欢也可以jmp跳转



  • 最后打补丁并且替换掉原先的im.dll




结果展示


 



相关问题

如果TIM更新后此方法会失效,需要重新打补丁!
发现打了补丁后程序不怎么稳定了,以前是完美运行的,可能是TX做了什么检测吧,这里就不再做深入的分析了。
微信、QQ的PC软件都可以参照类似的方法,移动端暂未尝试。





- End -




看雪ID:OK     

https://bbs.pediy.com/user-832445.htm





本文由看雪论坛 OK繃 原创

转载请注明来自看雪社区




热门图书推荐

 立即购买!





热门文章阅读

1、FastHook——实现.dynsym段和.symtab段符号查询

2、QQ 浏览器 JecStruct 协议

3、信号/槽原理分析 | 如何查看与分析QT的源码实现






公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com




↙点击下方“阅读原文”,查看更多干货

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存